package com.moorror.codegenvel.common.table;

import com.google.common.collect.Lists;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;

import java.util.List;

/**
 * @Author jiyanghuang
 * @Date 2022/8/1 22:35
 */
@Data
public class ColumnDesc {

    /**
     * 列展示的名称
     */
    private String nameShow;

    /**
     * 列的唯一key
     */
    private String columnUk;

    /**
     * 展示的顺序
     */
    private int order;

    /**
     * 列的类型
     */
    private ColumnDescEnum columnDescEnum;

    /**
     * 数据的类型
     */
    private ColumnValueEnum columnValueEnum;

    /**
     * 该方格最终展示的值
     */
    private String valueShow;

    /**
     * 当值为select时，可选择的值
     */
    private List<String> options;

    /**
     *
     */
    private String valueChangeInvokeMethod;

    /**
     * 获取值的函数名或属性名
     */
    private String fetchName;

    /**
     * 更新值的方法名或属性名
     */
    private String updateName;

    /**
     * 是否可编辑
     */
    private boolean cellEditable;

    /**
     * 针对某个列设置显示的颜色
     */
    private ColumnShowAttr columnShowAttr;

    /**
     * 是否是TreeColumn
     * 即展开与闭合的列
     */
    private boolean columnTree;

    /**
     * 冗余存储，方便展示使用
     */
    @Getter
    @Setter
    protected int treeLevel;

    public void fillOptions(String[] values){
        if(null == values){
            options = Lists.newArrayList();
            return;
        }
        options = Lists.newArrayList(values);
    }
}
